1. Field of the Invention
The present invention relates to the real-time streaming of data between endpoints. Such data may include video on-demand, audio, or any other type of streaming data which should be transmitted in real-time.
2. Background
Client/server communication typically follows a transaction model. A server remains idle until it has received a request from a client. A client request for N bytes of data can then be made which is received by the server. The server serves the request and returns the N bytes of data to the client. The client processes the data, and when complete, requests another N bytes of data, to which the server receives and responds, and the client processes. For a continuous stream of data, e.g. audio and/or video data, the process continues until the client has requested the entire stream from the server. An example of this prior art protocol is illustrated in FIG. 1.
This prior art protocol is adequate for many applications, however, for an audio or video on-demand application, performance greatly suffers. Because each chunk of data requires a whole transaction in order for it to be transmitted, the scheme suffers from long propagation delays in the transmission of the request and the corresponding response of data. This is exacerbated in wide area networks (WAN's) or wireless networks which adds additional propagation delays to the stream.
Disk inefficiency also introduces latency into the processes performed in prior systems. Disk latency consists of three components: disk seek, rotational latency and data transfer time. The latency to retrieve a small block (e.g. less than 32 KBytes) of disk data is usually dominated by disk seek and rotational latency. For example, the average seek time and rotational latency of a disk drive is about 9, and 4 milli seconds, respectively. However, the time to transfer a 32 KBytes of data is about 6.4 milliseconds. The data transfer time occupies only 33% (6.4/19.4) of total time (11% for 8 KBytes of data retrieval assuming that the I/O bus can sustain 5 MBytes/sec transfer rates, such as a SCSI-1 bus). More efficient disk access mechanisms for such schemes are required.
Network congestion also causes prior art schemes such as these to suffer from inefficiencies. Due to the effects of disk latency, it may be advantageous to retrieve data in larger blocks. However, the delivery of those larger blocks increases the chance of packet loss because of the random behavior of client requests. A traffic smoothing function may be required to reduce the possibility of packet loss.
It is therefore desirable to minimize such shortcomings for improved performance of real-time streaming applications, such as video on-demand services.